//导包
import {
  getBaseUrl,
  requestUtil
} from '../../utils/requestUtil'
import regeneratorRuntime from '../../lib/runtime/runtime'


Page({

  /**
   * 页面的初始数据
   */
  data: {
    orders: [],
    tabs: [{
        id: 0,
        value: "全部订单",
        isActive: true
      },
      {
        id: 1,
        value: "待付款",
        isActive: false
      },
      {
        id: 2,
        value: "待收货",
        isActive: false
      },
      {
        id: 3,
        value: "退款/退货",
        isActive: false
      },
    ]
  },

  //接口参数
  QueryParams: {
    type: 0,
    page: 1, //第几页
    pageSize: 10 //每页记录数
  },
  //总页数
  totalPage: 1,

  /**
   * 根据标题索引激活选中的标签
   * @param {*} e 
   */
  changeTitleByIndex(index) {
    let {
      tabs
    } = this.data;
    tabs.forEach((v, i) => i == index ? v.isActive = true : v.isActive = false);
    this.setData({
      tabs
    })
  },
  /**
   * tab点击事件处理
   * @param {*} options 
   */
  handleTabsItemChange(e) {
    // const {index}=e.currentTarget.dataset;
    const {
      index
    } = e.detail;
    //切换标题
    this.changeTitleByIndex(index);
    //获取订单列表
    this.QueryParams.type = index;
    this.QueryParams.page = 1;
    this.setData({
      orders: []
    })
    this.getOrder();
  },
  // 确认收货事件处理
async returnOrder(e) {
  const orderId = e.currentTarget.dataset.orderId; // 获取点击的订单ID
  console.log("orderId>>>>>"+orderId);
  
  const res = await requestUtil({
      url: `/my/order/return`, // 后端确认收货的接口
      method: 'POST',
      data: {
          orderId
      }
  });
  
  if (res.code === 0) {
      wx.showToast({
          title: '申请成功',
          icon: 'success'
      });
      
      // 刷新订单列表
      this.refreshOrders();
  } else {
      wx.showToast({
          title: res.message || '申请失败，请重试',
          icon: 'none'
      });
  }
},

// 刷新订单列表
async refreshOrders() {
  this.setData({
      orders: [] // 清空当前订单列表
  });
  await this.getOrder(); // 重新获取订单
},
 // 确认收货事件处理
async confirmedOrder(e) {
  const orderId = e.currentTarget.dataset.orderId; // 获取点击的订单ID
  console.log("orderId>>>>>"+orderId);
  
  const res = await requestUtil({
      url: `/my/order/confirmed`, // 后端确认收货的接口
      method: 'POST',
      data: {
          orderId
      }
  });
  
  if (res.code === 0) {
      wx.showToast({
          title: '确认收货成功',
          icon: 'success'
      });
      
      // 刷新订单列表
      this.refreshOrders();
  } else {
      wx.showToast({
          title: res.message || '确认收货失败，请重试',
          icon: 'none'
      });
  }
},

// 刷新订单列表
async refreshOrders() {
  this.setData({
      orders: [] // 清空当前订单列表
  });
  await this.getOrder(); // 重新获取订单
},
  // 取消订单事件处理
  async cancelOrder(e) {
    const orderId = e.currentTarget.dataset.orderId; // 获取点击的订单ID
    const res = await requestUtil({
      url: `/my/order/cancel`, // 后端删除订单的接口
      method: 'POST',
      data: {
        orderId
      }
    });
    console.log("res"+res);
    if (res.code === 0) {
      wx.showToast({
        title: '订单已取消',
        icon: 'success'
      });
      // // 重新加载订单数据
      // this.setData({
      //   orders: []
      // });
      // this.getOrder(); // 重新获取订单
      // 从订单列表中删除该订单
    const updatedOrders = this.data.orders.filter(order => order.id !== orderId);
    this.setData({
      orders: updatedOrders
    });
     
    } else {
      wx.showToast({
        title: '取消失败，请重试',
        icon: 'none'
      });
    }
  },
  /**
   * 获取订单
   */
  async getOrder() {
    const res = await requestUtil({
      url: '/my/order/list',
      data: this.QueryParams
    });
    console.log(res);
    this.totalPage = res.totalPage;
    this.setData({
      orders: [...this.data.orders, ...res.orderList]
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    console.log("show")
    let pages = getCurrentPages();
    console.log(pages);
    let currentPage = pages[pages.length - 1];
    console.log(currentPage.options);
    const {
      type
    } = currentPage.options;
    console.log("type=" + type);
    this.changeTitleByIndex(type);
    this.QueryParams.type = type;
    this.QueryParams.page = 1;
    this.setData({
      orders: []
    })
    this.getOrder();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.QueryParams.page = 1;
    this.setData({
      orders: []
    })
    this.getOrder();
    //手动关闭等待效果
    wx.stopPullDownRefresh({

    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    if (this.QueryParams.page >= this.totalPage) {
      wx.showToast({
        title: '没有下一页数据了',
      })
    } else {
      console.log("有下页数据");
      this.QueryParams.page++;
      this.getOrder();
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})